'''
利用scandir 获取一个文件夹中有多少个文件

使用外部传入参数的形式

python count_file_name.py -d xxx 
'''
import os
import argparse

def count_files(directory):
    """统计指定目录中的文件数量"""
    count = 0
    try:
        for entry in os.scandir(directory):
            if entry.is_file():
                count += 1
                print('\rcur num:',count,end='',flush=True)
        return count
    except FileNotFoundError:
        print(f"错误：目录 '{directory}' 不存在")
        return -1
    except PermissionError:
        print(f"错误：没有权限访问目录 '{directory}'")
        return -1

if __name__ == "__main__":
    # 设置命令行参数解析
    parser = argparse.ArgumentParser(description='统计目录中的文件数量')
    parser.add_argument('-d', '--directory', required=True, help='要统计的目录路径')
    args = parser.parse_args()

    # 统计文件数量
    file_count = count_files(args.directory)
    if file_count >= 0:
        print(f"目录 '{args.directory}' 中共有 {file_count} 个文件")